home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / unixSyscall / RCS / open.man,v < prev    next >
Text File  |  1990-05-02  |  6KB  |  255 lines

  1. head     1.3;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @@;
  7.  
  8.  
  9. 1.3
  10. date     90.05.01.22.55.50;  author shirriff;  state Exp;
  11. branches ;
  12. next     1.2;
  13.  
  14. 1.2
  15. date     88.12.31.12.42.19;  author ouster;  state Exp;
  16. branches ;
  17. next     1.1;
  18.  
  19. 1.1
  20. date     88.12.31.11.57.55;  author ouster;  state Exp;
  21. branches ;
  22. next     ;
  23.  
  24.  
  25. desc
  26. @@
  27.  
  28.  
  29. 1.3
  30. log
  31. @Added reference to "fileno" to "open" man page, since I can never
  32. remember that "fileno" is the function I want.
  33. @
  34. text
  35. @.\" Copyright (c) 1980 Regents of the University of California.
  36. .\" All rights reserved.  The Berkeley software License Agreement
  37. .\" specifies the terms and conditions for redistribution.
  38. .\"
  39. .\"    @@(#)open.2    6.4 (Berkeley) 5/14/86
  40. .\"
  41. .TH OPEN 2 "May 14, 1986"
  42. .UC 4
  43. .SH NAME
  44. open \- open a file for reading or writing, or create a new file
  45. .SH SYNOPSIS
  46. .nf
  47. .ft B
  48. #include <sys/file.h>
  49. .PP
  50. .ft B
  51. open(path, flags, mode)
  52. char *path;
  53. int flags, mode;
  54. .fi
  55. .SH DESCRIPTION
  56. .I Open
  57. opens the file
  58. .I path
  59. for reading and/or writing, as specified by the
  60. .I flags
  61. argument and returns a descriptor for that file.
  62. The
  63. .I flags
  64. argument may indicate the file is to be
  65. created if it does not already exist (by specifying the
  66. O_CREAT flag), in which case the file is created with mode
  67. .I mode
  68. as described in
  69. .IR chmod (2)
  70. and modified by the process' umask value (see
  71. .IR umask (2)).
  72. .PP
  73. .I Path
  74. is the address of a string of ASCII characters representing
  75. a path name, terminated by a null character.
  76. The flags specified are formed by
  77. .IR or 'ing
  78. the following values
  79. .PP
  80. .RS
  81. .ta 1.5i
  82.  O_RDONLY    open for reading only
  83.  O_WRONLY    open for writing only
  84.  O_RDWR    open for reading and writing
  85.  O_APPEND    append on each write
  86.  O_CREAT    create file if it does not exist
  87.  O_TRUNC    truncate size to 0
  88.  O_EXCL    error if create and file exists
  89.  O_MASTER    open pseudo-device as master
  90.  O_PFS_MASTER    open pseudo-file-system as master
  91. .RE
  92. .PP
  93. Opening a file with O_APPEND set causes each write on the file
  94. to be appended to the end.  If O_TRUNC is specified and the
  95. file exists, the file is truncated to zero length.
  96. If O_EXCL is set with O_CREAT, then if the file already
  97. exists, the open returns an error.  This can be used to
  98. implement a simple exclusive access locking mechanism.
  99. If O_EXCL is set and the last component of the pathname is
  100. a symbolic link, the open will fail even if the symbolic
  101. link points to a non-existent name.
  102. .PP
  103. The O_MASTER and O_PFS_MASTER flags are used by server processes
  104. implementing pseudo-devices and pseudo-file-systems (respectively).
  105. See the man pages \fIPdev\fR and \fIPfs\fR for details on how
  106. these flags are used.
  107. .PP
  108. Upon successful completion a non-negative integer termed a
  109. file descriptor is returned.
  110. The file pointer used to mark the current position within the
  111. file is set to the beginning of the file.
  112. .PP
  113. The new descriptor is set to remain open across
  114. .IR execve
  115. system calls; see
  116. .IR close (2).
  117. .PP
  118. The system imposes a limit on the number of file descriptors
  119. open simultaneously by one process.
  120. .IR Getdtablesize (2)
  121. returns the current system limit.
  122. .SH "ERRORS
  123. The named file is opened unless one or more of the
  124. following are true:
  125. .TP 15
  126. [ENOTDIR]
  127. A component of the path prefix is not a directory.
  128. .TP 15
  129. [EINVAL]
  130. The pathname contains a character with the high-order bit set.
  131. .TP 15
  132. [ENAMETOOLONG]
  133. A component of a pathname exceeded 255 characters,
  134. or an entire path name exceeded 1023 characters.
  135. .TP 15
  136. [ENOENT]
  137. O_CREAT is not set and the named file does not exist.
  138. .TP 15
  139. [ENOENT]
  140. A component of the path name that must exist does not exist.
  141. .TP 15
  142. [EACCES]
  143. Search permission is denied for a component of the path prefix.
  144. .TP 15
  145. [EACCES]
  146. The required permissions (for reading and/or writing)
  147. are denied for the named flag.
  148. .TP 15
  149. [EACCES]
  150. O_CREAT is specified,
  151. the file does not exist,
  152. and the directory in which it is to be created
  153. does not permit writing.
  154. .TP 15
  155. [ELOOP]
  156. Too many symbolic links were encountered in translating the pathname.
  157. .TP 15
  158. [EISDIR]
  159. The named file is a directory, and the arguments specify
  160. it is to be opened for writting.
  161. .TP 15
  162. [EROFS]
  163. The named file resides on a read-only file system,
  164. and the file is to be modified.
  165. .TP 15
  166. [EMFILE]
  167. The system limit for open file descriptors per process has already been reached.
  168. .TP 15
  169. [ENFILE]
  170. The system file table is full.
  171. .TP 15
  172. [ENXIO]
  173. The named file is a character special or block
  174. special file, and the device associated with this special file
  175. does not exist.
  176. .TP 15
  177. [ENOSPC]
  178. O_CREAT is specified,
  179. the file does not exist,
  180. and the directory in which the entry for the new file is being placed
  181. cannot be extended because there is no space left on the file
  182. system containing the directory.
  183. .TP 15
  184. [ENOSPC]
  185. O_CREAT is specified,
  186. the file does not exist,
  187. and there are no free inodes on the file system on which the
  188. file is being created.
  189. .TP 15
  190. [EDQUOT]
  191. O_CREAT is specified,
  192. the file does not exist,
  193. and the directory in which the entry for the new fie
  194. is being placed cannot be extended because the
  195. user's quota of disk blocks on the file system
  196. containing the directory has been exhausted.
  197. .TP 15
  198. [EDQUOT]
  199. O_CREAT is specified,
  200. the file does not exist,
  201. and the user's quota of inodes on the file system on
  202. which the file is being created has been exhausted.
  203. .TP 15
  204. [EIO]
  205. An I/O error occurred while making the directory entry or
  206. allocating the inode for O_CREAT.
  207. .TP 15
  208. [ETXTBSY]
  209. The file is a pure procedure (shared text) file that is being
  210. executed and the \fIopen\fP call requests write access.
  211. .TP 15
  212. [EFAULT]
  213. .I Path
  214. points outside the process's allocated address space.
  215. .TP 15
  216. [EEXIST]
  217. O_CREAT and O_EXCL were specified and the file exists.
  218. .TP 15
  219. [EOPNOTSUPP]
  220. An attempt was made to open a socket (not currently implemented).
  221. .SH "SEE ALSO"
  222. chmod(2), close(2), dup(2), getdtablesize(2),
  223. lseek(2), read(2), write(2), umask(2), fileno(3)
  224. @
  225.  
  226.  
  227. 1.2
  228. log
  229. @Document Sprite extensions.
  230. @
  231. text
  232. @d189 1
  233. a189 1
  234. lseek(2), read(2), write(2), umask(2)
  235. @
  236.  
  237.  
  238. 1.1
  239. log
  240. @Initial revision
  241. @
  242. text
  243. @d47 1
  244. a50 1
  245.  O_NDELAY    do not block on open
  246. d55 2
  247. d68 5
  248. a72 5
  249. If the O_NDELAY flag is specified and the open call would result
  250. in the process being blocked for some reason (e.g. waiting for
  251. carrier on a dialup line), the open returns immediately. 
  252. The first time the process attempts to perform i/o on the open
  253. file it will block (not currently implemented).
  254. @
  255.